# KidsBuddy 1.0 Dockerfile
# 用于构建KidsBuddy应用的容器

# 使用Python 3.8作为基础镜像
FROM python:3.8-slim

# 设置工作目录
WORKDIR /app

# 设置Python环境变量
ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    PYTHONPATH=/app

# 安装系统依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
    build-essential \
    libgl1-mesa-glx \
    libglib2.0-0 \
    libsm6 \
    libxext6 \
    libxrender-dev \
    ffmpeg \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

# 复制项目文件
COPY . /app/

# 创建必要的目录
RUN mkdir -p /app/logs /app/data /app/models /app/config

# 安装Python依赖
RUN pip install --upgrade pip && \
    pip install -e .

# 下载必要的模型（如果需要）
RUN python -c "from ultralytics import YOLO; YOLO('yolov8n.pt').save('/app/models/yolov8n.pt')"

# 暴露端口（如果需要API服务）
EXPOSE 8000

# 设置启动命令
CMD ["python", "-m", "kidsbuddy"]

# 使用方法:
# 构建镜像: docker build -t kidsbuddy:1.0 .
# 运行容器: docker run -it --rm --device=/dev/video0:/dev/video0 -v $(pwd)/data:/app/data -v $(pwd)/logs:/app/logs kidsbuddy:1.0